#include "app_main.h"


#if __cplusplus

#include <iostream>

#include <algorithm>  // 包含 std::transform
#include <string>
#include <cstring>
#include <stdlib.h>
#include <vector>

using namespace std;

#else

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h> // 包含 sleep 函数的头文件
#include <time.h>

#endif


#include "test.h"
// #include "utils.h"

template<typename T>
void print_all(const char* pRemind, const T& rColl)
{
    std::cout << pRemind;
    for (const auto& ele : rColl)
        std::cout << ele << " ";
    std::cout << std::endl;
}

void app_main()
{
    // cout << "Hello, world!" << endl;
    test_main();

    // std::vector<int> v = {1, 2, 3, 4, 5};
    // print_all("vector: ", v);

    // string result = "be:be:be:00:00:56";
    // std::cout << "Last character: " << *(result.end() - 1) << std::endl; // 迭代器的 end() 指向最后一个元素的下一个位置 此处打印最后一个元素 6 （此处为字符）

    // std::vector <int> v = {1, 2, 3, 4, 5};
    // std::cout << "Last element: " << *(v.end()) << std::endl; // 迭代器的 end() 指向最后一个元素的下一个位置 此处打印已经不指向 vector 中的元素了

    // const char *str = "LEVEL:100";
    // str = strstr(str, "LEVEL");
    // std::cout << "str: " << str << std::endl;
    // if (str != NULL && *(str + 1) != '\0' && *(str + 2) != '\0') {
    //     str++;
    //     int num = atoi(str);
    //     std::cout << "num: " << num << std::endl;
    // }

    // 转换为大写
    // transform 
    // 第一个参数是输入的第一个元素的地址
    // 第二个参数是输入的最后一个元素的地址 + 1
    // 第三个参数是输出的第一个元素的地址
    // string result = "be:be:be:00:00:56";
    // transform(result.begin(), result.end(), result.begin(), ::toupper);
    // cout << result << endl; // 输出:BE:BE:BE:00:00:50
    // result.erase(remove(result.begin(), result.end(), ':'), result.end());
    // cout << result << endl; // 输出:

    // // c语言转换为大写
    // char str[] = "be:be:be:00:00:56";
    // for (int i = 0; i < strlen(str); i++) {
    //     str[i] = toupper(str[i]);
    // }
    // printf("%s\n", str); // 输出:BE:BE:BE:00:00:50

    // // c语言转换为小写
    // char str[] = "BE:BE:BE:00:00:50";
    // for (int i = 0; i < strlen(str); i++) {
    //     str[i] = tolower(str[i]);
    // }
    // printf("%s\n", str); // 输出:be:be:be:00:00:50

    // system("pause");
}